home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / YOUPROP.H < prev    next >
C/C++ Source or Header  |  1993-03-16  |  5KB  |  169 lines

  1. /*    SCCS Id: @(#)youprop.h    3.0    89/06/24
  2. /* NetHack may be freely redistributed.  See license for details. */
  3. /* Copyright (c) 1989 Mike Threepoint */
  4.  
  5. #ifndef YOUPROP_H
  6. #define YOUPROP_H
  7.  
  8. #ifndef PROP_H
  9. #include "prop.h"
  10. #endif
  11. #ifndef PERMONST_H
  12. #include "permonst.h"
  13. #endif
  14. #ifndef MONDATA_H
  15. #include "mondata.h"
  16. #endif
  17. #ifndef PM_H
  18. #include "pm.h"
  19. #endif
  20.  
  21. #ifndef NAMED_ITEMS
  22. # define defends(attk,uwep)    0
  23. #endif
  24.  
  25. /* two pseudo-properties */
  26. #define Blindfolded    (ublindf)
  27. #define Punished    (uball)
  28.  
  29. /* perhaps these #define's should also be generated by makedefs */
  30. #define HFire_resistance    u.uprops[FIRE_RES].p_flgs
  31. #ifdef POLYSELF
  32. #define Fire_resistance    ((HFire_resistance) || resists_fire(uasmon) || defends(AD_FIRE,uwep))
  33. #else
  34. #define Fire_resistance    ((HFire_resistance) || defends(AD_FIRE,uwep))
  35. #endif
  36.  
  37. #define HSleep_resistance    u.uprops[SLEEP_RES].p_flgs
  38. #ifdef POLYSELF
  39. #define Sleep_resistance    ((HSleep_resistance) || resists_sleep(uasmon))
  40. #else
  41. #define Sleep_resistance    HSleep_resistance
  42. #endif
  43.  
  44. #define HCold_resistance    u.uprops[COLD_RES].p_flgs
  45. #ifdef POLYSELF
  46. #define Cold_resistance    ((HCold_resistance) || resists_cold(uasmon) || defends(AD_COLD,uwep))
  47. #else
  48. #define Cold_resistance    ((HCold_resistance) || defends(AD_COLD,uwep))
  49. #endif
  50.  
  51. #define HDisint_resistance    u.uprops[DISINT_RES].p_flgs
  52. #ifdef POLYSELF
  53. #define Disint_resistance    ((HDisint_resistance) || resists_disint(uasmon))
  54. #else
  55. #define Disint_resistance    HDisint_resistance
  56. #endif
  57.  
  58. #define HShock_resistance    u.uprops[SHOCK_RES].p_flgs
  59. #ifdef POLYSELF
  60. #define Shock_resistance    ((HShock_resistance) || resists_elec(uasmon) || defends(AD_ELEC,uwep))
  61. #else
  62. #define Shock_resistance    ((HShock_resistance) || defends(AD_ELEC,uwep))
  63. #endif
  64.  
  65. #define HPoison_resistance    u.uprops[POISON_RES].p_flgs
  66. #ifdef POLYSELF
  67. #define Poison_resistance    ((HPoison_resistance) || resists_poison(uasmon))
  68. #else
  69. #define Poison_resistance    (HPoison_resistance)
  70. #endif
  71.  
  72. #define Adornment        u.uprops[ADORNED].p_flgs
  73.  
  74. #define HRegeneration        u.uprops[REGENERATION].p_flgs
  75. #ifdef POLYSELF
  76. #define Regeneration        ((HRegeneration) || regenerates(uasmon))
  77. #else
  78. #define Regeneration        (HRegeneration)
  79. #endif
  80.  
  81. #define Searching        u.uprops[SEARCHING].p_flgs
  82.  
  83. #define HSee_invisible        u.uprops[SEE_INVIS].p_flgs
  84. #ifdef POLYSELF
  85. #define See_invisible        ((HSee_invisible) || perceives(uasmon))
  86. #else
  87. #define See_invisible        (HSee_invisible)
  88. #endif
  89.  
  90. #define HInvis            u.uprops[INVIS].p_flgs
  91. #ifdef POLYSELF
  92. #define Invis            ((HInvis) || u.usym == S_STALKER)
  93. #else
  94. #define Invis            (HInvis)
  95. #endif
  96. #define Invisible        (Invis && !See_invisible)
  97.  
  98. #define HTeleportation        u.uprops[TELEPORT].p_flgs
  99. #ifdef POLYSELF
  100. #define Teleportation        ((HTeleportation) || can_teleport(uasmon))
  101. #else
  102. #define Teleportation        (HTeleportation)
  103. #endif
  104.  
  105. #define HTeleport_control    u.uprops[TELEPORT_CONTROL].p_flgs
  106. #ifdef POLYSELF
  107. #define Teleport_control    ((HTeleport_control) || control_teleport(uasmon))
  108. #else
  109. #define Teleport_control    (HTeleport_control)
  110. #endif
  111.  
  112. #define Polymorph        u.uprops[POLYMORPH].p_flgs
  113. #define Polymorph_control    u.uprops[POLYMORPH_CONTROL].p_flgs
  114.  
  115. #define HLevitation        u.uprops[LEVITATION].p_flgs
  116. #ifdef POLYSELF
  117. #define Levitation        ((HLevitation) || is_floater(uasmon))
  118. #else
  119. #define Levitation        (HLevitation)
  120. #endif
  121.  
  122. #define Stealth         u.uprops[STEALTH].p_flgs
  123. #define Aggravate_monster    u.uprops[AGGRAVATE_MONSTER].p_flgs
  124. #define Conflict        u.uprops[CONFLICT].p_flgs
  125. #define Protection        u.uprops[PROTECTION].p_flgs
  126. #define Protection_from_shape_changers    u.uprops[PROT_FROM_SHAPE_CHANGERS].p_flgs
  127. #define Warning         u.uprops[WARNING].p_flgs
  128.  
  129. #define HTelepat        u.uprops[TELEPAT].p_flgs
  130. #ifdef POLYSELF
  131. #define Telepat         ((HTelepat) || (u.umonnum == PM_FLOATING_EYE))
  132. #else
  133. #define Telepat         (HTelepat)
  134. #endif
  135.  
  136. #define Fast            u.uprops[FAST].p_flgs
  137.  
  138. #define HStun            u.uprops[STUN].p_flgs
  139. #ifdef POLYSELF
  140. #define Stunned     ((HStun) || u.usym == S_BAT || u.usym == S_STALKER)
  141. #else
  142. #define Stunned         (HStun)
  143. #endif
  144.  
  145. #define HConfusion        u.uprops[CONFUSION].p_flgs
  146. #define Confusion        (HConfusion)
  147.  
  148. #define Sick            u.uprops[SICK].p_flgs
  149. #define Blinded         u.uprops[BLINDED].p_flgs
  150. #define Blind            (Blinded || Blindfolded)
  151. #define Sleeping        u.uprops[SLEEPING].p_flgs
  152. #define Wounded_legs        u.uprops[WOUNDED_LEGS].p_flgs
  153. #define Stoned            u.uprops[STONED].p_flgs
  154. #define Strangled        u.uprops[STRANGLED].p_flgs
  155. #define Hallucination        u.uprops[HALLUC].p_flgs
  156. #define Fumbling        u.uprops[FUMBLING].p_flgs
  157. #define Jumping         u.uprops[JUMPING].p_flgs
  158. #define Wwalking        u.uprops[WWALKING].p_flgs
  159. #define Hunger            u.uprops[HUNGER].p_flgs
  160. #define Glib            u.uprops[GLIB].p_flgs
  161. #define Reflecting        u.uprops[REFLECTING].p_flgs
  162. #define Lifesaved        u.uprops[LIFESAVED].p_flgs
  163. #define Antimagic        u.uprops[ANTIMAGIC].p_flgs
  164. #define Displaced        u.uprops[DISPLACED].p_flgs
  165. #define Clairvoyant        u.uprops[CLAIRVOYANT].p_flgs
  166. #define Vomiting        u.uprops[VOMITING].p_flgs
  167.  
  168. #endif /* YOUPROP_H /**/
  169.